# 数组的基本操作
# https://www.bilibili.com/video/BV19T4y127Z2/?p=2&spm_id_from=pageDriver&vd_source=8bd7b24b38e3e12c558d839b352b32f4
import numpy as np

print("array essentials ")

# 一维数组操作
a = np.array([5, 5, 5])
b = np.array([10, 10, 10])
print(a + b)
print(a - b)
print(a * b)
print(a / b)
print(a % b)
print(a * 2)

c = np.arange(4)
print(c > 0)

# 二维数组操作
print("###########################")
A = np.array([[1, 1], [0, 1]])
B = np.array([[2, 0], [3, 4]])
print(A)
print(B)
# 元素对应相乘，注意这个不是矩阵乘法
print(A * B)
# 矩阵乘法
print(A.dot(B))
# 矩阵乘法（写法2）
print(np.dot(A, B))
# 求矩阵的特征值和特征向量
# 实测，使用JupyterLab打印效果会更好！但PyCharm提示会更好！
print(np.linalg.eig(A))

# 一维运算
print("############################")
print(a)
print(b)
a += b
print(a)
d = np.array([23, 14, 89, 35, 20])
print(d.sum())
print(d.max())
print(d.min())

# 二维数组
print("#############################")
d2 = np.arange(12).reshape(3, 4)
print(d2)
# 12个元素加到一起
print(d2.sum())
# 求行和
print(d2.sum(axis=0))
# 求列和
print(d2.sum(axis=1))
# 每行最大
print(d2.max(axis=1))